import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

public class Exercise14 {
    public int missingNumber(int[] nums) {
      /*  int i = 0;
        int n = nums.length;
        int[] arr = new int[n];
        for(i = 0;i < n;i++) {
            arr[i] = i;
        }
        Arrays.sort(nums);
        for(i = 0;i < n;i++) {
            if(arr[i] != nums[i]) {
                return arr[i];
            }
        }
        return 0;*/
        int i = 0;
        // 该数组的长度
        int n = nums.length;
        // 哈希表用来存放已经存在的数据
        Set<Integer> set = new HashSet<>();
        // 直接循环
        for(i = 0;i < n;i++) {
            set.add(nums[i]);
        }
        // 此数为丢失的数
        int missNum = 0;
        // 遍历哈希表找到丢失的数
        for(i = 0;i <=n;i++) {
            // 如果从i到n内的某个数字不存在则返回该数字
            if(!set.contains(i)) {
                missNum = i;
                break;
            }
        }
        return missNum;
    }
}
